package com.ruoyi.qrCode.domain;

import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 二维码日志管理对象 wdmf_qr_code
 * 
 * @author ruoyi
 * @date 2025-08-02
 */
@Data
public class QrCode extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 二维码ID（主键） */
    private Long qrCodeId;

    /** 关联商品ID（wdmf_business_sku.sku_id） */
    @Excel(name = "关联商品ID", readConverterExp = "w=dmf_business_sku.sku_id")
    private Long skuId;

    /** 二维码图片地址 */
    @Excel(name = "二维码图片地址")
    private String qrCodeUrl;

    /** 二维码图片数据（Base64编码） */
    @Excel(name = "二维码图片数据")
    private String qrCodeData;

    /** 二维码参数（如sku_id=1&timestamp=1625000000） */
    @Excel(name = "二维码参数", readConverterExp = "如=sku_id=1&timestamp=1625000000")
    private String qrParams;

    /** 扫码次数 */
    @Excel(name = "扫码次数")
    private Long scanCount;

    /** 二维码状态（0：有效；1：无效） */
    @Excel(name = "二维码状态", readConverterExp = "0=：有效；1：无效")
    private String qrStatus;

    /** 状态（0=上架 1=下架） */
    @Excel(name = "状态", readConverterExp = "0==上架,1==下架")
    private String status;

    /** 删除标志（0存在 2删除） */
    private String delFlag;

    /** 版本号（乐观锁） */
    @Excel(name = "版本号", readConverterExp = "乐=观锁")
    private Long version;

    /** 场景ID */
    private String sceneId;


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("qrCodeId", getQrCodeId())
            .append("skuId", getSkuId())
            .append("qrCodeUrl", getQrCodeUrl())
            .append("qrParams", getQrParams())
            .append("scanCount", getScanCount())
            .append("qrStatus", getQrStatus())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("version", getVersion())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
            .append("qrCodeData", getQrCodeData())
            .append("sceneId", getSceneId())
            .toString();
    }
}
